草庐IT

MySQL 枚举空值

全部标签

c# - 为什么 LINQPad 将枚举整数值转储为字符串?

我正在使用LinqPad测试一些Enum函数,但没有像我在使用.Dump()时预期的那样得到整数。为什么ToList()解决了这个问题?voidMain(){Enum.GetValues(typeof(Options)).Cast().Dump();Enum.GetValues(typeof(Options)).Cast().ToList().Dump();}publicenumOptions{Equal,LessThan,GreaterThan} 最佳答案 实际上,LINQPad并不是这里的罪魁祸首。这是因为Enumerable.

c# - 如何在不装箱的情况下比较 System.Enum 和枚举(实现)?

如何在不装箱的情况下将System.Enum与enum进行比较?例如,如何在不装箱enum的情况下使以下代码工作?enumColor{Red,Green,Blue}...System.EnummyEnum=GetEnum();//ReturnsaSystem.Enum.//MaybeaColor,maybesomeotherenumtype....if(myEnum==Color.Red)//ERROR!{DoSomething();}具体而言,此处的目的不是比较基础值。在这种情况下,基本值(value)并不重要。相反,如果两个枚举具有相同的基础值,如果它们是两种不同类型的枚举,则不应

C#枚举到字符串自动转换?

是否可以让编译器自动将我的枚举值转换为字符串,这样我就可以避免每次都显式调用ToString方法。这是我想做的一个例子:enumRank{A,B,C}RankmyRank=Rank.A;stringmyString=Rank.A;//Error:Cannotimplicitlyconverttype'Rank'to'string'stringmyString2=Rank.A.ToString();//OK:butisextrawork 最佳答案 没有。枚举是它自己的类型,所以如果你想将它转换成其他类型,你必须做一些工作。但是,根据您

c# - 在 C# 中枚举 Windows 可移植设备

我正在尝试使用Windows可移植设备API和此API提供的PortableDeviceManager在Windows上枚举已连接的可移植设备。我已经按照MSDN文档link实现了设备ID枚举。和各种博客link,但它们都会导致相同的问题-当有多个连接时,我只能让它为我提供一个设备的ID。这是我正在使用的C#代码片段:PortableDeviceManagerClassdeviceManager=newPortableDeviceManagerClass();deviceManager.RefreshDeviceList();uintnumberOfDevices=1;deviceMa

c# - 到处查找枚举转换为字符串

我目前正试图在解决方案中的任何地方找到将特定枚举转换为字符串的地方,无论是否显式调用了ToString()。(这些被替换为使用枚举描述的转换以改进混淆。)示例:我想找到诸如stringstr="Value:"+SomeEnum.someValue;这样的代码我尝试用包含隐式转换到枚举类型并覆盖包装类中的ToString()的包装类替换枚举本身,但是当我尝试搜索ToString()覆盖的使用时,它给了我一个列表解决方案中对任何内容调用ToString()的地方(并且仅在明确调用它的地方)。搜索是在VisualStudio中使用ReSharper完成的。还有其他方法可以找到这些枚举到字符串

c# - 堆栈和队列枚举顺序

我知道List枚举器保证枚举顺序并尊重最后的排序操作,我知道Dictionary和HashSet不,即你可以不确定Dictionarydictionary=...;foreach(varpairindictionary){}将按照附加的顺序处理对。Stack和Queue呢?他们的调查员是否保证任何顺序? 最佳答案 对于Stack,枚举目前由一个名为StackEnumerator的嵌套私有(private)类完成(这是来自ReferenceSource):privateclassStackEnumerator:IEnumerator,

c# - 在 C# 中测试空值

如果我这样做:DataSetds=GetMyDataset();try{stringsomevalue=ds.Tables[0].Rows[0]["col1"];}catch{//maybesomethingwasnull}有没有不使用try/catch来检查空值的好方法?只是我不在乎“col1”中的值是否为空,或者“col1”是否不存在,或者是否没有返回行,或者表是否不存在!也许我应该关心?:)也许try/catch是解决这个问题的最佳方法,但我只是想知道是否还有其他方法可以做到这一点?谢谢! 最佳答案 不关心表或列有点奇怪。例如

c# - 枚举网络共享

.net框架是否有一部分可以枚举主机上的文件共享?我发现了一些使用WMI的东西,但我不想走那条路。 最佳答案 您可以使用NetShareEnumwin32api。http://www.pinvoke.net/default.aspx/netapi32/netshareenum.html或者看看下面的项目,它是.NETWrapper。http://www.codeproject.com/KB/IP/networkshares.aspx 关于c#-枚举网络共享,我们在StackOverflo

c# - 如何枚举 x^2 + y^2 = z^2 - 1(有附加约束)

让我们N是一个数字(10.我必须把它分成3个数字(x,y,z)这样它就可以验证以下条件。1.x我必须找出我可以从一个方法中的给定数字中得到多少组合。我已经尝试如下,但是它花费了很多时间来获得更高的数字并导致超时..intN=Int32.Parse(Console.ReadLine());Listres=newList();//x我的问题:我的解决方案是花时间获得更大的数字(我认为这是for循环),我该如何改进它?是否有更好的方法? 最佳答案 这里有一个枚举三元组的方法,而不是详尽地测试它们,使用这里描述的数论:https://mat

c# - 枚举 MatchCollection 时,为什么 var 结果是 Object 类型而不是 Match 类型?

我注意到下面的代码有些奇怪:MatchCollectionmc=Regex.Matches(myString,myPattern);foreach(varmatchinmc)Console.WriteLine(match.Captures[0]);//变量match的类型是Object而不是Match。我习惯于使用var枚举集合,没有这样的问题。为什么MatchCollection不同? 最佳答案 MatchCollection是在.NET2之前编写的,所以它只是实现了IEnumerable而不是IEnumerable.但是,您可以